package top.hmtools.mapper.plus.mysql;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.UpdateProvider;

import tk.mybatis.mapper.annotation.RegisterMapper;
@RegisterMapper
public interface IUpdateMapperPlus<T> {
	
	//################################	改
	
		/**
		 *  修改一条数据，如果属性为 null ，或者 为空字符串，则忽略这些属性
		 *  <br><b>注意：key 是否为null，是否为空字符串，是否为 不存在的属性；obj 是否为null；obj 主键值是否为null，空字符串；</b>
		 *  <br>入参均不得为null或者为空，为防止造成误修改数据，目前采用SQL语句错误方式处理（“where”后面无内容）
		 * @param key 主键名称（Java类主键属性名称）
		 * @param obj
		 * @return
		 */
		@UpdateProvider(type = UpdateMapperPlusProvider.class,method="dynamicSQL")
		Integer updateOneByPkIgnoreNullEmpty(@Param(value="key")String key,@Param(value="obj")T obj);

		/**
		 * 修改一条数据，不忽略 null，空字符串
		 * <br><b>注意：key 是否为null，是否为空字符串，是否为 不存在的属性；obj 是否为null；obj 主键值是否为null，空字符串；</b>
		 * <br>入参均不得为null或者为空，为防止造成误修改数据，目前采用SQL语句错误方式处理（“where”后面无内容）
		 * @param key
		 * @param obj
		 * @return
		 */
		@UpdateProvider(type = UpdateMapperPlusProvider.class,method="dynamicSQL")
		Integer updateOneByPk(@Param(value="key")String key,@Param(value="obj")T obj);

}
